package com.lyz.config;

import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.RandomRule;
import com.netflix.loadbalancer.Server;

import java.util.List;
import java.util.Random;

public class MyRandomRule extends RandomRule {
    @Override
    public Server choose(ILoadBalancer lb, Object key) {
// lb.getAllServers()
        //获取访问的在线的目标服务集合：例如通过hk-STOCK现在可以获取到 8082和8182两个服务的配置
        List<Server> reachableServers = lb.getReachableServers();
        //获取在线目标服务的数量
        int count = reachableServers.size();
        //new Random().nextInt(count)获取 0~count-1之间的随机数，从集合中获取索引位置的服务
        return reachableServers.get(new Random().nextInt(count));
    }
}